package br.unirio.octopus.util;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class UtilitarioDeDatas {

	private static UtilitarioDeDatas instanciaDeUtilitario;

	public static UtilitarioDeDatas getInstancia()
	{
		if(instanciaDeUtilitario==null)
		{
			instanciaDeUtilitario = new UtilitarioDeDatas();
		}
		return instanciaDeUtilitario;
	}
	
	public Date tempoRestanteEntreDatas(Date dataInicial, Date dataFinal)
	{
		 long diferenca = Math.abs(dataFinal.getTime() - dataInicial.getTime());
		 long minutesLeft = diferenca / (1000 * 3600);	
		 
		 return null;
	}
	
	public boolean palpiteDeJogoPodeSerEditadoNestaData(Date dataAtual, Date dataDoJogo)
	{	
		GregorianCalendar dataAtualCalendar = (GregorianCalendar) dataParaGregorianCalendar(dataAtual);
		GregorianCalendar dataJogoCalendar = (GregorianCalendar) dataParaGregorianCalendar(dataDoJogo);
		dataAtualCalendar.add(GregorianCalendar.HOUR, 1);
		
		if(dataAtualCalendar.before(dataJogoCalendar) || dataAtualCalendar.equals(dataJogoCalendar)){
			return true;
		}
		return false;
		
	}	
	
	private Calendar dataParaGregorianCalendar(Date data){ 
		  Calendar cal = new GregorianCalendar();
		  cal.setTime(data);
		  return cal;
	}
	
}
